The typical office environment includes personal computers and increasingly more thin clients physically located at the users' locations. These personal computers and thin clients operate on a network having a centralized system for storage, file serving, file sharing, network management and various administrative services. Initially, systems centralized all of the disk storage associated with the computer system while users ran applications on their local desktops. More recently, recognizing the benefits of security, reduced cost of operation, and the general desire for centralizing control, personal computers and thin clients can operate as Remote Terminals (RTs) in Server Based Computing (SBC) solutions which run applications on a server.
In order to provide a computer interface to a human operator, a collection of input and output devices are required. This collection will typically include a video display, a mouse and a keyboard. Keyboards and mice are user interfaces that are used to switch on a computer or input commands to the computer. Optionally, this collection will also include additional devices, such as speakers, microphones, floppy disk drives, CD-ROM drives and additional keyboard devices. For a single user computer, all devices are included in a single collection. For a multi-user system, there will be more than one collection, one for each user. Some method must be used to determine the configuration of these multiple collections.
Moreover, to enhance the communication between the host system and the clients, other systems have used the main CPU of the host system to improve the performance for RTs. This has been done both for thin clients and for traditional PCs as the remote clients. Such approaches have been effective for host systems that support only one user at a time. However, for multi-user systems, the approach of using the main CPU at the host to improve the performance for any one user has significant limitations. Computational resources such as main memory and CPU cycles that are used for optimizations for one user may reduce the ability to support the workload for additional users.
Efficiently supporting multiple users from a single host computer can reduce costs. In a typical office environment, seldom is everyone using their computer at the same time and similarly, seldom is any one user using all of the computing resources of their computer. In a distributed office environment a centralized multi-user system may be connected over varied bandwidth links to support RTs at locations in different parts of the world during the different working hours for the respective time zones.
Server Based Computing, where the applications for users run on the server with only RT services supported at the user's terminal, is another way to more effectively allocate computing resources for multiple users. SBC allows the host system to dynamically allocate shared resources such as memory and CPU cycles in a multi-user operating environment. SBC systems can employ techniques of multi-user operating systems, Virtual Machines (VM), load balancing and other means to grant different users access to different levels of performance and resources based on a number of criteria. Different priority schemes can be used to allocate SBC resources. SBC can achieve higher data security, centralize the support for an organization, enhanced disaster recovery and business continuance, and reduce data storage requirements across an organization. Web servers are one type of SBC which may provide a multi-user platform for a variety of clients including browser based clients.
Therefore, based-on the shortcomings of prior arts, the present invention provide a newly multi-user computer system which no extra hardware is necessary for the PC.